'use strict';
const dayjs = require("dayjs");
const {getDefaultModelConfig} = require("../../utils/common");
const { formatDate } = require("../../utils/index");

module.exports = app => {
    const { STRING, INTEGER, DATE, TINYINT, TEXT } = app.Sequelize;
    return app.model.define(
        'SkillSubsidy',
        {
            id: {type: INTEGER, primaryKey: true, autoIncrement: true},
            applicant_name: STRING(50), // 申请人姓名
            company_name: STRING(200), // 申请人单位名称
            phone: STRING(11), // 联系电话
            gender: {type: STRING, defaultValue: '', comment: '性别：男，女'}, // 性别
            id_card: STRING(18), // 身份证号
            certificate_type: {type: TINYINT, defaultValue: 1, comment: '证书类型：1-职业资格证书，2-职业技能等级证书'}, // 证书名称
            certificate_level: {type: TINYINT, defaultValue: 1, comment: '证书等级：1-初级，2-中级，3-高级'}, // 证书等级
            certificate_number: STRING(50), // 证书编号
            occupation: STRING(100), // 职业(工种)
            issue_date: {
                type: DATE,
                get() {
                    return formatDate(this.getDataValue('issue_date'), 'YYYY-MM-DD');
                }
            }, // 发证日期
            social_bank: STRING(100), // 社保卡开户银行
            social_account: STRING(30), // 社保卡银行账号
            certification_proof: STRING(255), // 证岗相适证明（图片上传）
            id_card_front_photo: TEXT, // 身份证正面照片
            id_card_back_photo: TEXT, // 身份证反面照片
            graduation_cert_photo: TEXT, // 毕业证书或教育部学历证书电子注册备案表
            degree_cert_photo: TEXT, // 学位证照片
            invitation_material_photo: TEXT, // 在企业求职面试现场照片
            status: {type: TINYINT, defaultValue: 0, comment: '审核状态：0-待审核，1-审核通过，2-审核拒绝'}, // 审核状态
            review_remark: TEXT, // 审核备注
            reviewer: STRING(50), // 审核人
            ...getDefaultModelConfig(app)
        },
        {
            tableName: 'skill_subsidy',
            timestamps: true,
            createdAt: 'create_time',
            updatedAt: 'update_time'
        }
    );
};
